#ifndef QUADFISH_H_
#define QUADFISH_H_

#include "fish.h"

extern int numSplits;
extern int numCollapses;

/* Flocking Parameters */
const double C0 = 0.00000001; // weight of vector away from neighbors within crowding radius
const double C2 = 1.0; // weight of velocity correcting vectors towards avg. flocking velocity
const double C4 = 0.05; // weight of random vector
const double C5 = 0.1; // weight of vector pointing to cog of local flockmates
const double R_CROWD2 = 0.00390625; // square of crowding radius
const double R_SIGHT2 = 0.015625; // square of sighting radius
const double R_SIGHT = 0.125; // sighting radius
const double BIRD_MASS = 1.0; // bird mass
const double R = 1.0; // repulsion constant
const double M = 1.0; // constant that converts vectors to acceleration
const double START_CONST = 0.5;
const double SIGHT_ANGLE = 200.0 * M_PI / 180.0;
// the square of the distance, below which we actually check if two boids interact
const double CUTOFF2 = R_SIGHT2 > R_CROWD2 ? R_SIGHT2 : R_CROWD2;

//returns square of distance, using torus mapping
double distance2( double ax, double ay, double bx, double by );

#endif                          /*QUADFISH_H_ */
